#include<iostream.h>
void menu();
int count=0;
class stack
			  {
			  private:
						 int element;
						 stack *next;
			  public:
						stack* enqueue(stack*,int);
						stack* dequeue();
						void stack_display(stack*);
						void search(int);
			  }*head,*trial;
stack* stack::enqueue(stack* head,int key)
{
 stack *temp,*temp1;
 temp1=head;
 temp=new stack;
 trial=temp;
 count++;
 temp->element=key;
 temp->next=NULL;
 if(head==NULL)
		head=temp;
 else
	  {
		 while(head->next!=NULL)
				  head=head->next;
		head->next=temp;
		head=temp1;
	  }
 return head;
 }
 stack* stack::dequeue()
 {
   if(head==NULL&&trial==NULL)
        {
        cout<<"Is Empty\n";
        }
   else if(head==trial)
        {
        head=NULL;
        delete trial;
        }
   else
       {
        stack* temp1;
		  temp1=head;
        head=head->next;
		  delete temp1;
		  count--;
        }
        return head;
 }
 void stack::search(int a)
 {
 int g=0;
 stack *temp;
 temp=head;
while(temp->next!=NULL)
		 {
		  if(temp->element==a)
		  g++;
		 temp=temp->next;
		 }
	if(temp->element==a)
		g++;
 if(g==0)
	 {
	  cout<<"\n-------------------------------------------\n";
	  cout<<"the element  "<<a<<"  not found";
	  cout<<"\n-------------------------------------------\n";
	 }
 else
	 {
	 cout<<"\n-------------------------------------------\n";
	 cout<<"the element  "<<a<<"   found";
	 cout<<"\n-------------------------------------------\n";
	  }
 }

 void stack::stack_display(stack* head)
 {
 stack* temp;
 temp=head;
 if(temp!=NULL)
	{
	 while(temp->next!=NULL)
			{
			cout<<temp->element<<"  ";
			temp=temp->next;
			}
			cout<<temp->element;
			cout<<endl;
	 }
 else
	  cout<<"The Stack Is Empty\n";
 }

									  int main()
{
int c,x,z;
stack object;
head=trial=NULL;
menu();
cin>>c;
while(c!=6)
		{
		switch(c)
				  {
				  case 1:
							cout<<"\n Enter Element :  ";
							cin>>x;
							head=object.enqueue(head,x);
							break;
				  case 2:
							head=object.dequeue();
							break;
				  case 3:
							cout<<"\n Enter Element :  ";
							cin>>z;
							object.search(z);
							break;
				  case 4:
							cout<<"\n-------------------------------------------\n";
							cout<<count;
							cout<<"\n-------------------------------------------\n";
							break;
				  case 5:
							cout<<"\n-------------------------------------------\n";
							object.stack_display(head);
							cout<<"-------------------------------------------\n";
							break;
				  default:
							cout<<"Pl Enter Your Choice.(1,2,3,4)--->";
				  }
		menu();
		cin>>c;
}
return 0;
}

 void menu()
 {
  cout<<"\n       main menu  \n";
  cout<<"____________________________";
  cout<<"\n1>Add Element to A Stack\n";
  cout<<"2>Del Element form Stack\n";
  cout<<"3>sersh\n";
  cout<<"4>counter\n";
  cout<<"5>Display Element on Stack\n";
  cout<<"6>Exit\n";
 }